//给你一个 循环 数组 nums ，请你找出相邻元素之间的 最大 绝对差值。 
//
// 注意：一个循环数组中，第一个元素和最后一个元素是相邻的。 
//
// 
//
// 示例 1： 
//
// 
// 输入：nums = [1,2,4] 
// 
//
// 输出：3 
//
// 解释： 
//
// 由于 nums 是循环的，nums[0] 和 nums[2] 是相邻的，它们之间的绝对差值是最大值 |4 - 1| = 3 。 
//
// 示例 2： 
//
// 
// 输入：nums = [-5,-10,-5] 
// 
//
// 输出：5 
//
// 解释： 
//
// 相邻元素 nums[0] 和 nums[1] 之间的绝对差值为最大值 |-5 - (-10)| = 5 。 
//
// 
//
// 提示： 
//
// 
// 2 <= nums.length <= 100 
// -100 <= nums[i] <= 100 
// 
//
// Related Topics 数组 👍 5 👎 0


package LeetCode.editor.cn;


import java.util.Arrays;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.IntStream;

/**
 * @author ldltd
 * @date 2025-06-12 09:38:50
 * @description 3423.循环数组中相邻元素的最大差值
 
 */
 
public class MaximumDifferenceBetweenAdjacentElementsInACircularArray {
    public static void main(String[] args) {
    //测试代码
    MaximumDifferenceBetweenAdjacentElementsInACircularArray fun = new MaximumDifferenceBetweenAdjacentElementsInACircularArray();
    Solution solution= fun.new Solution();
    
    }

//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public int maxAdjacentDistance1(int[] nums) {
        int length = nums.length;
        AtomicInteger res= new AtomicInteger(Math.abs(nums[0] - nums[length - 1]));
        IntStream.range(0,length-1)
                .map(i -> Math.abs(nums[i] - nums[i + 1]))
                .forEach(i -> res.set(Math.max(res.get(), i)));
        return res.get();
    }
    public int maxAdjacentDistance(int[] nums) {
        int length = nums.length;
        int res=Math.abs(nums[0] - nums[length - 1]);
        for (int i = 0; i < length - 1; i++) {
            res = Math.max(res, Math.abs(nums[i] - nums[i + 1]));
        }
        return res;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}
